//esta clase se encarga de verificar los circulos blancos y negras y ademas 
//dibuja la fila de tablero  
package code.vista;

import java.awt.*;
import java.util.ArrayList;

public class FilaTablero {

	private int combinacionSeleccionada[] = new int[8];
	private int blancas, negras;
	private int numeroColores;

	public FilaTablero(int[] combinacionSeleccionada, int[] combinacionSecreta,
			int numeroColores) {
		this.combinacionSeleccionada=combinacionSeleccionada;
		blancas = 0;
		negras = 0;
		this.numeroColores = numeroColores;
		// color correcto en la posicion
		for (int i = 0; i < numeroColores; i++) {
			if (combinacionSecreta[i] == combinacionSeleccionada[i]) {
				negras++;
			}
		}
		// color en cualquier posicion

		ArrayList<Integer> actual = new ArrayList<Integer>();
		for (int x : combinacionSeleccionada)
			actual.add(x);
		ArrayList<Integer> secreta = new ArrayList<Integer>();
		for (int x : combinacionSecreta)
			secreta.add(x);
		int j = 0;
		while (j < actual.size())
			if (secreta.contains(actual.get(j))) {
				blancas++;
				secreta.remove(actual.get(j));
				actual.remove(j);
			} else
				j++;
		// ajuste
		blancas = blancas - negras;
	}

	public void draw(Graphics g, int x, int y) {
		int k = 0, l = 0;
		for (int i = 0; i < numeroColores; i++) {
			g.setColor(Circulo.colores[combinacionSeleccionada[i]]);
			g.fillOval(x + i * 25, y, 20, 20);
			g.setColor(Color.BLACK);
			g.drawOval(x + i * 25, y, 20, 20);
			k = x + (i + 1) * 25;
			l = k;
		}
		for (int i = 0; i < negras; i++) {
			g.setColor(Circulo.colores[6]);
			g.fillOval(k + 10 * i, y + 8, 8, 8);
			g.setColor(Color.BLACK);
			g.drawOval(k + 10 * i, y + 8, 8, 8);
			l = k + 10 * (i + 1);
		}
		for (int i = 0; i < blancas; i++) {
			g.setColor(Circulo.colores[7]);
			g.fillOval(l + 10 * i, y + 8, 8, 8);
			g.setColor(Color.BLACK);
			g.drawOval(l + 10 * i, y + 8, 8, 8);
		}
	}

	public boolean isCorrecto() {
		if (negras == numeroColores)
			return true;
		return false;
	}

	public int getNumeroColores() {
		return numeroColores;
	}

	public void setNumeroColores(int numeroColores) {
		this.numeroColores = numeroColores;
	}

}
